As is known, in semiconductor memories, conditional access must be provided to certain memory portions. An ability to defeat deceptive attempts carried out by reading from the interdicted areas of such memories is of paramount importance. For example, data relating to the protection code CP of the memory would be stored in such areas.
On the other hand, semiconductor memories have other areas where information is stored which can be read and/or modified in the usual manner. Thus, the situation is one where different memory areas may or may not be conceded to reading.
In addition, a semiconductor memory usually includes areas containing program instructions to be executed.
The simplest way of providing a safety feature includes using a decoding code DEC, also known as the access or identification code, which usually comprises a few bytes or memory words. Without this decoding code, no consistent data can be read from the memory, nor can the contents of previously stored data be modified.
Thus, the location Xdec of the decoding code DEC is critical to the achievement of improved safety for a semiconductor memory.
In particular, the location Xdec of the decoding code DEC should meet certain basic requirements, as follows:
It should be considered, in fact, that the memory write time is a critical parameter at its fabrication stage. In particular, providing easily accessed memories is important if this write time is to be reduced.
A first prior approach to filling this demand includes using some memory locations of unknown address into which the bytes of the protection code CP could be stored. The reliability of this prior method is dependent on two features:
However, this first protection method has certain unfavorable features which make it complicated to apply and lower its safety level.
In conventional semiconductor memories, these memory locations for the bytes of the protection code CP can only be provided within a memory array shared with the data. It is, therefore, necessary to use a software program for the write step which can memorize and avoid memory bits already in use.
However, the problem arises of how to erase the whole memory, or whole sections thereof which might contain bytes of the protection code CP. This problem is intensified in the instance of semiconductor memories of the flash type.
In this situation, the erase operation must be preceded by a temporary saving of the memory protection code CP. For the purpose, a temporary or buffer memory may be used from which the protection code CP can later be read for re-writing to the bytes re-assigned thereto.
Consequently, a protection method of that type tends to complicate both the hardware and the software of the semiconductor memory. In particular, the step of copying the protection code CP during the semiconductor memory fabrication process represents an unacceptable waste of time in such applications as cellular phones.
Furthermore, since the bytes of the protection code CP are written and erased using standard commands, anybody would be able to damage or read the protection code CP contained therein, and possibly fully interpret it without the decoding code DEC.